package cn.com.cpic.insurance.rulecheck.core;

import java.util.Iterator;

/**
 * 可修改的Map接口，此Map中不会放入重复的Value，此Map的key为value的token
 * 
 * @author 代波
 * @since 2011-8-13
 * @param <K> Map中key的类型
 * @param <V> Map中value的类型
 */
public interface ModifiableMap<K, V extends Tokenable<K>> extends ModifiableSet<V> {
	/**
	 * 检查集合中是否包含指定token的元素
	 * 
	 * @param key token
	 * @return 如果包含，返回true，否则返回false
	 */
	boolean containsKey(K key);

	/**
	 * 获得集合中元素token的迭代
	 * 
	 * @return 元素token的迭代
	 */
	Iterator<K> keyIterator();

	/**
	 * 获得token对应的元素
	 * 
	 * @param key 元素的token
	 * @return token对应的元素，如果未找到则返回null
	 */
	V get(K key);
}
